#ifndef _FIFO_H_
#define _FIFO_H_

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

#include <windows.h>
#include "pdd_hisi_icu.h"
#include "linux_list.h"



//typedef void * FIFO_HANDLE;
typedef struct hiFIFO_HANDLE
{
	struct list_head *list_head;
	CRITICAL_SECTION Fifo_Section;
}*FIFO_HANDLE;

typedef struct hiFIFO_DATA_S
{
	struct list_head list;
	void *pData;
}FIFO_DATA_S;

FIFO_HANDLE FIFO_Init();
BOOL FIFO_Put(FIFO_HANDLE Handle, DMAPacket *pData);
DMAPacket * FIFO_Get(FIFO_HANDLE Handle);
BOOL FIFO_DeInit(FIFO_HANDLE Handle);

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */

#endif  /*_FIFO_H_*/
